Amazon Connectオペレーション時間でオーバーライドを利用し、祝日のみ営業時間外とする設定をAWS CloudFormationで作成してみた
はじめに
前回の記事では、Amazon Connectのオペレーション時間にオーバーライド設定が実装され、オペレーション時間のみで祝日判定が可能になったことを紹介しました。
今回は、AWS CloudFormationを使用して、2025年度の日本の祝日を終日営業時間外とするオペレーション時間を作成してみます。
日本の祝日は、内閣府の「国民の祝日」についてのページに情報が記載されています。
以下の日付を祝日として判定します。
国民の祝日・休日月日 国民の祝日・休日名称
2025/1/1 元日
2025/1/13 成人の日
2025/2/11 建国記念の日
2025/2/23 天皇誕生日
2025/2/24 休日
2025/3/20 春分の日
2025/4/29 昭和の日
2025/5/3 憲法記念日
2025/5/4 みどりの日
2025/5/5 こどもの日
2025/5/6 休日
2025/7/21 海の日
2025/8/11 山の日
2025/9/15 敬老の日
2025/9/23 秋分の日
2025/10/13 スポーツの日
2025/11/3 文化の日
2025/11/23 勤労感謝の日
2025/11/24 休日
なお、2026年の国民の祝日は、2025年2月に掲載される予定です。
試してみる
以下のテンプレートを利用します。
テンプレート内容は以下のとおりです。
- オペレーション時間名:24/7 Operation with Holiday Override
- タイムゾーン:Asia/Tokyo
- 営業時間:24時間365日(祝日を除く)
- オーバーライド:日本の祝日は終日営業時間外
AWSTemplateFormatVersion: '2010-09-09'
Description: 24/7 Hours of Operation with holiday override for Amazon Connect
Parameters:
ConnectInstanceId:
Type: String
Description: The ID of the Amazon Connect instance
Resources:
ConnectHoursOfOperation:
Type: AWS::Connect::HoursOfOperation
Properties:
Name: 24/7 Operation with Holiday Override
Description: 24 hours operation with specific holiday schedules
InstanceArn: !Sub arn:aws:connect:${AWS::Region}:${AWS::AccountId}:instance/${ConnectInstanceId}
TimeZone: Asia/Tokyo
Config:
- Day: MONDAY
StartTime:
Hours: 0
Minutes: 0
EndTime:
Hours: 0
Minutes: 0
- Day: TUESDAY
StartTime:
Hours: 0
Minutes: 0
EndTime:
Hours: 0
Minutes: 0
- Day: WEDNESDAY
StartTime:
Hours: 0
Minutes: 0
EndTime:
Hours: 0
Minutes: 0
- Day: THURSDAY
StartTime:
Hours: 0
Minutes: 0
EndTime:
Hours: 0
Minutes: 0
- Day: FRIDAY
StartTime:
Hours: 0
Minutes: 0
EndTime:
Hours: 0
Minutes: 0
- Day: SATURDAY
StartTime:
Hours: 0
Minutes: 0
EndTime:
Hours: 0
Minutes: 0
- Day: SUNDAY
StartTime:
Hours: 0
Minutes: 0
EndTime:
Hours: 0
Minutes: 0
HoursOfOperationOverrides:
- EffectiveFrom: "2025-01-01"
EffectiveTill: "2025-01-01"
OverrideName: New Year's Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-01-13"
EffectiveTill: "2025-01-13"
OverrideName: Coming of Age Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-02-11"
EffectiveTill: "2025-02-11"
OverrideName: National Foundation Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-02-23"
EffectiveTill: "2025-02-23"
OverrideName: Emperor's Birthday
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-02-24"
EffectiveTill: "2025-02-24"
OverrideName: Transfer Holiday for Emperor's Birthday
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-03-20"
EffectiveTill: "2025-03-20"
OverrideName: Vernal Equinox Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-04-29"
EffectiveTill: "2025-04-29"
OverrideName: Showa Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-05-03"
EffectiveTill: "2025-05-03"
OverrideName: Constitution Memorial Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-05-04"
EffectiveTill: "2025-05-04"
OverrideName: Greenery Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-05-05"
EffectiveTill: "2025-05-05"
OverrideName: Children's Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-05-06"
EffectiveTill: "2025-05-06"
OverrideName: Transfer Holiday for Children's Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-07-21"
EffectiveTill: "2025-07-21"
OverrideName: Marine Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-08-11"
EffectiveTill: "2025-08-11"
OverrideName: Mountain Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-09-15"
EffectiveTill: "2025-09-15"
OverrideName: Respect for the Aged Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-09-23"
EffectiveTill: "2025-09-23"
OverrideName: Autumnal Equinox Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-10-13"
EffectiveTill: "2025-10-13"
OverrideName: Sports Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-11-03"
EffectiveTill: "2025-11-03"
OverrideName: Culture Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-11-23"
EffectiveTill: "2025-11-23"
OverrideName: Labor Thanksgiving Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-11-24"
EffectiveTill: "2025-11-24"
OverrideName: Transfer Holiday for Labor Thanksgiving Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
上記のテンプレートを使用して、CloudFormationでスタックを作成します。
パラメータには、ConnectのインスタンスIDを入力します。インスタンスARNではない点に注意してください。
スタック作成後、オペレーション時間を確認すると、祝日はオーバーライドされて、終日営業時間外にすることができました。
祝日の日付が昇順や降順に並んでいない点が惜しいですね。気になる方はAWSにフィードバックを送ることを検討ください。
オーバーライドを時間指定する場合
今回は、オーバーライドで祝日を終日営業時間外としましたが、終日ではなく時間を指定することも可能です。
テンプレートは以下のとおりです。
~中略~
Resources:
ConnectHoursOfOperation:
Type: AWS::Connect::HoursOfOperation
Properties:
~中略~
HoursOfOperationOverrides:
# 1/1は終日営業時間外
- EffectiveFrom: "2025-01-01"
EffectiveTill: "2025-01-01"
OverrideName: New Year's Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
# 1/1は9:00-17:00のみ営業時間内
- EffectiveFrom: "2025-01-01"
EffectiveTill: "2025-01-01"
OverrideName: New Year's Day
OverrideDescription: Limited hours 9:00-17:00
OverrideConfig:
- Day: WEDNESDAY
StartTime:
Hours: 9
Minutes: 0
EndTime:
Hours: 17
Minutes: 0
スタック作成時エラー
過去の日付を指定してオーバーライドできません。
テンプレートで過去の日付を指定すると、スタックで以下のエラーが表示されます。
Resource handler returned message: “Expired EffectiveFrom or EffectiveTill date
~中略~
HoursOfOperationOverrides:
- EffectiveFrom: "2024-01-01"
EffectiveTill: "2024-01-01"
OverrideName: New Year's Day
OverrideDescription: Closed for Holiday
OverrideConfig: []
また、オーバーライド名は重複できません。
たとえば、テンプレートでオーバーライド名を「Holiday」として複数作成すると、スタックで以下のエラーが表示されます。
Resource handler returned message: “An hour of operation override with name Holiday already exists in Amazon Connect
~中略~
- EffectiveFrom: "2025-01-01"
EffectiveTill: "2025-01-01"
OverrideName: Holiday
OverrideDescription: Closed for Holiday
OverrideConfig: []
- EffectiveFrom: "2025-01-13"
EffectiveTill: "2025-01-13"
OverrideName: Holiday
OverrideDescription: Closed for Holiday
AWS CLIはまだ未サポート
現時点では、AWS CLIを使用してオペレーション時間のオーバーライドを行うことはできません。
AWS CLIを最新バージョンに更新し、aws connect create-hours-of-operation help
コマンドで確認しましたが、オーバーライド機能は見当たりませんでした。